package com.hu.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hu.common.domain.dto.PaginationLogDTO;
import com.hu.common.model.UserLogForm;
import com.hu.dao.entity.LogEntity;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Set;

/**
 * @author 00355760
 * @功能： 日志
 * @版本： V1
 * @版权： 信息技术有限公司（http://www.mychery.com/）
 * @作者： 磐石战队开发组  00355760
 * @日期： 2025/1/2 8:57
 */
@Service
@Component
public interface LogService extends IService<LogEntity> {

    /**
     * 列表
     *
     * @param userLogForm
     * @return
     */
    List<LogEntity> getList(UserLogForm userLogForm);

    /**
     * 列表
     *
     * @param category  日志分类
     * @param paginationLogDTO 分页条件
     * @return
     */
    List<LogEntity> getList(int category, PaginationLogDTO paginationLogDTO);

    /**
     * 信息
     *
     * @param id 主键值
     * @return
     */
    LogEntity getInfo(String id);


    /**
     * 删除
     * @param ids
     * @return
     */
    boolean delete(String[] ids);

    /**
     * 写入日志
     *
     * @param userId    用户Id
     * @param userName  用户名称
     * @param abstracts 摘要
     */
    void writeLogAsync(String userId, String userName, String abstracts);

    /**
     * 请求日志
     *
     * @param logEntity 实体对象
     */
    void writeLogAsync(LogEntity logEntity);

    /**
     * 请求日志
     */
    void deleteHandleLog(String type);

    /**
     * 获取操作模块名
     *
     * @return
     */
    Set<String> queryList();
}
